package com.ruoyi.check.service.impl;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.List;

import com.ruoyi.check.domain.Attendance;
import com.ruoyi.personnel.domain.Employee;
import com.ruoyi.personnel.mapper.EmployeeMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.check.mapper.VacateMapper;
import com.ruoyi.check.domain.Vacate;
import com.ruoyi.check.service.IVacateService;

/**
 * 请假管理Service业务层处理
 *
 * @author tza
 * @date 2023-03-06
 */
@Service
public class VacateServiceImpl implements IVacateService {
    @Autowired
    private VacateMapper vacateMapper;

    @Autowired
    private EmployeeMapper employeeMapper;

    /**
     * 查询请假管理
     *
     * @param abId 请假管理主键
     * @return 请假管理
     */
    @Override
    public Vacate selectVacateByAbId(Integer abId) {
        return vacateMapper.selectVacateByAbId(abId);
    }

    /**
     * 查询请假管理列表
     *
     * @param vacate 请假管理
     * @return 请假管理
     */
    @Override
    public List<Vacate> selectVacateList(Vacate vacate) {
        List<Vacate> vacateList = vacateMapper.selectVacateList(vacate);
//        for (Vacate vacate1 : vacateList) {
//            Employee employee = employeeMapper.selectEmployeeByEmpId(vacate1.getEmpId());
//            vacate1.setEmpName(employee.getEmpName());
//        }
        return vacateList;
    }

    /**
     * 新增请假管理
     *
     * @param vacate 请假管理
     * @return 结果
     */
    @Override
    public int insertVacate(Vacate vacate) {
        return vacateMapper.insertVacate(vacate);
    }

    /**
     * 修改请假管理
     *
     * @param vacate 请假管理
     * @return 结果
     */
    @Override
    public int updateVacate(Vacate vacate) {
        return vacateMapper.updateVacate(vacate);
    }

    /**
     * 批量删除请假管理
     *
     * @param abIds 需要删除的请假管理主键
     * @return 结果
     */
    @Override
    public boolean deleteVacateByAbIds(Integer[] abIds) {
        for (int i = 0; i < abIds.length; i++) {
            System.out.println("批量删除请假管理的"+abIds[i]);
            // 根据id查询vacate
            Vacate vacate = vacateMapper.selectVacateByAbId(abIds[i]);
            Date abEndTime = vacate.getAbEndTime();
            // 获取数据库字段的abEndTime的时间毫秒值
            long abEndTime_ms = abEndTime.getTime();
            //当前时间毫秒值
            long nowTime_ms = System.currentTimeMillis();
            if (abEndTime_ms  <= nowTime_ms){
                vacateMapper.deleteVacateByAbId(abIds[i]);
            }else {
                return false;
            }
        }
        return true;


//        String[] arr = new String[abIds.length];
//        for (int i = 0; i < abIds.length; i++) {
//            System.out.println("删除的id值--" + abIds[i]);
//            //根据id查询出时间
//            Vacate vacate = vacateMapper.selectVacateByAbId(abIds[i]);
//            //数据库结束时间
//            Date abEndTime = vacate.getAbEndTime();
//            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//            String abEndTime01 = simpleDateFormat.format(abEndTime);
//            System.out.println("数据库结束时间" + abEndTime01);
//
//            //当前时间
//            Date date = new Date();
//            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//            String nowTime = formatter.format(date);
//            //与当前时间做比较
//            Date abEndTime02 = null;
//            Date nowTime02 = null;
//            try {
//                abEndTime02 = simpleDateFormat.parse(abEndTime01);
//                nowTime02 = simpleDateFormat.parse(nowTime);
//            } catch (ParseException e) {
//                e.printStackTrace();
//            }
//
//            //是否超过
//            boolean before = abEndTime02.before(nowTime02);
//            if (before == true) {
//                //删除
//                arr[i] = "0";
//            } else {
//                arr[i] = "1";
//            }
//        }
//        //数据
//        String str = Arrays.toString(arr);
//        if (str.contains("1")){
//            return false;
//        } else {
//            vacateMapper.deleteVacateByAbIds(abIds);
//            return true;
//        }

    }

    /**
     * 删除请假管理信息
     *
     * @param abId 请假管理主键
     * @return 结果
     */
    @Override
    public int deleteVacateByAbId(Integer abId) {
        return vacateMapper.deleteVacateByAbId(abId);
    }
}
